package com.gengzp.mq.client.core;

import java.util.Map;

/**
 * @ClassName MqGlobalVariableManager
 * @Description mq内置全局变量管理器接口
 * @Author gengzp
 * @Date 2025/9/4 19:41
 */
public interface MqGlobalVariableManager {

    /**
     * 根据主题获取消息监听器 bean 名称
     *
     * @param topic 订阅的主题
     */
    String getMqListenerBeanNameByTopic(String topic);

    /**
     * 注册消息监听器
     *
     * @param topic    监听的主题
     * @param beanName 监听器的 bean 名称
     * @param thread   监听线程
     * @return true: 注册成功, false: 注册失败
     */
    boolean registerTopicListener(String topic, String beanName, Thread thread);

    /**
     * 获取当前消息监听器线程映射
     *
     * @return 线程映射 key: 监听的topic   value: 消息监听线程
     */
    Map<String, Thread> getMqListenerThreadMap();

}
